Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement ACL attribute read/write #12305

Conversation

mlepage-google
Copy link
Contributor

@mlepage-google mlepage-google commented Nov 26, 2021

Problem

Access Control Cluster needs an implementation (issue #10254)

Change overview

Implement read and write of entire ACL attribute. (Not list indexes, not fabric indexing, not parts of entries...)

Includes temporary access control set up (which will be moved later).

Note that access control isn't persisted or hooked up to IM yet.

Testing

Tested by running chip-tool against chip-all-clusters-app to read and write ACL entries and inspect that operation is correct.

Add empty cluster implementation to all-clusters-app example.
@mlepage-google
Copy link
Contributor Author

Converted to draft as dependent PRs still need to be merged first.

@mlepage-google mlepage-google changed the title Access control server implementation Access control server implementation for read ACL Nov 26, 2021
@mlepage-google
Copy link
Contributor Author

Also note that only access-control-server.cpp changed (and its BUILD file), the rest is all what this should be rebased on top of.

@github-actions
Copy link

github-actions bot commented Nov 26, 2021

PR #12305: Size comparison from 8a2fd0d to 4561958

Increases above 0.2%:

platform target config section 8a2fd0d 4561958 change % change
linux all-clusters-app debug (read only) 1774185 1799345 25160 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 138869 139893 1024 0.7
.text 1496946 1518898 21952 1.5
chip-tool debug (read only) 6085653 6111813 26160 0.4
.rodata 291816 292616 800 0.3
.text 5404709 5429493 24784 0.5
Increases (2 builds for linux)
platform target config section 8a2fd0d 4561958 change % change
linux all-clusters-app debug (read only) 1774185 1799345 25160 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 138869 139893 1024 0.7
.text 1496946 1518898 21952 1.5
chip-tool debug (read only) 6085653 6111813 26160 0.4
(read/write) 199920 200240 320 0.2
.data.rel.ro 151888 152208 320 0.2
.rodata 291816 292616 800 0.3
.text 5404709 5429493 24784 0.5
Full report (29 builds for efr32, k32w, linux, nrfconnect, qpg, telink)
platform target config section 8a2fd0d 4561958 change % change
efr32 lighting-app BRD4161A (read only) 762072 762072 0 0.0
(read/write) 119836 119836 0 0.0
.bss 118012 118012 0 0.0
.data 1820 1820 0 0.0
.text 762064 762064 0 0.0
BRD4161A+rpc (read only) 790520 790520 0 0.0
(read/write) 138132 138132 0 0.0
.bss 136212 136212 0 0.0
.data 1920 1920 0 0.0
.text 790512 790512 0 0.0
lock-app BRD4161A (read only) 736032 736032 0 0.0
(read/write) 117540 117540 0 0.0
.bss 115764 115764 0 0.0
.data 1776 1776 0 0.0
.text 736024 736024 0 0.0
window-app BRD4161A (read only) 739096 739096 0 0.0
(read/write) 117972 117972 0 0.0
.bss 116188 116188 0 0.0
.data 1784 1784 0 0.0
.text 739088 739088 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 723208 723208 0 0.0
.bss 78292 78292 0 0.0
.data 1956 1956 0 0.0
.text 637160 637160 0 0.0
lock-app k32w061+debug (read/write) 612280 612280 0 0.0
.bss 68740 68740 0 0.0
.data 1920 1920 0 0.0
.text 535820 535820 0 0.0
shell k32w061+debug (read/write) 677600 677600 0 0.0
.bss 79892 79892 0 0.0
.data 1892 1892 0 0.0
.text 590016 590016 0 0.0
linux all-clusters-app debug (read only) 1774185 1799345 25160 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 600 24 4.2
.rodata 138869 139893 1024 0.7
.text 1496946 1518898 21952 1.5
bridge-app debug+rpc (read only) 1348509 1348509 0 0.0
(read/write) 77856 77856 0 0.0
.bss 41744 41744 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 113500 113500 0 0.0
.text 1134917 1134917 0 0.0
chip-tool debug (read only) 6085653 6111813 26160 0.4
(read/write) 199920 200240 320 0.2
.bss 40064 40064 0 0.0
.data 2384 2384 0 0.0
.data.rel.ro 151888 152208 320 0.2
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 291816 292616 800 0.3
.text 5404709 5429493 24784 0.5
lighting-app debug+rpc (read only) 1628169 1628169 0 0.0
(read/write) 111104 111104 0 0.0
.bss 47440 47440 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131793 131793 0 0.0
.text 1358658 1358658 0 0.0
ota-provider-app debug (read only) 1309537 1309537 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114832 114832 0 0.0
.text 1094354 1094354 0 0.0
ota-requestor-app debug (read only) 1405977 1405977 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126304 126304 0 0.0
.text 1176530 1176530 0 0.0
shell debug (read only) 820321 820321 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 79023 79023 0 0.0
.text 634610 634610 0 0.0
tv-app debug (read only) 1918385 1918385 0 0.0
(read/write) 320152 320152 0 0.0
.bss 250232 250232 0 0.0
.data 2880 2880 0 0.0
.data.rel.ro 61368 61368 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 632 632 0 0.0
.rodata 159848 159848 0 0.0
.text 1610338 1610338 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 875499 875499 0 0.0
bss 112660 112660 0 0.0
rodata 97188 97188 0 0.0
text 590008 590008 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 838075 838075 0 0.0
bss 109012 109012 0 0.0
rodata 88436 88436 0 0.0
text 564324 564324 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 800538 800538 0 0.0
bss 114036 114036 0 0.0
rodata 92444 92444 0 0.0
text 519472 519472 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 846427 846427 0 0.0
bss 109700 109700 0 0.0
rodata 92972 92972 0 0.0
text 568280 568280 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 771698 771698 0 0.0
bss 111108 111108 0 0.0
rodata 88260 88260 0 0.0
text 497832 497832 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 852399 852399 0 0.0
bss 109836 109836 0 0.0
rodata 94680 94680 0 0.0
text 572324 572324 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 845523 845523 0 0.0
bss 109712 109712 0 0.0
rodata 92844 92844 0 0.0
text 567408 567408 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778447 778447 0 0.0
bss 109180 109180 0 0.0
rodata 73084 73084 0 0.0
text 521576 521576 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693482 693482 0 0.0
bss 110164 110164 0 0.0
rodata 67724 67724 0 0.0
text 442184 442184 0 0.0
qpg lighting-app qpg6100+debug (read only) 502992 502992 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50400 50400 0 0.0
.data 1024 1024 0 0.0
.text 497672 497672 0 0.0
lock-app qpg6100+debug (read only) 475708 475708 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49272 49272 0 0.0
.data 980 980 0 0.0
.text 470388 470388 0 0.0
persistent-storage-app qpg6100+debug (read only) 105424 105424 0 0.0
(read/write) 114138 114138 0 0.0
.bss 12002 12002 0 0.0
.data 276 276 0 0.0
.text 100104 100104 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 777286 777286 0 0.0
bss 79236 79236 0 0.0
noinit 37160 37160 0 0.0
text 540616 540616 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 29, 2021

PR #12305: Size comparison from 77258f7 to b8a6bef

Increases above 0.2%:

platform target config section 77258f7 b8a6bef change % change
linux all-clusters-app debug (read only) 1775081 1800209 25128 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 138965 139957 992 0.7
.text 1497746 1519698 21952 1.5
chip-tool debug (read only) 6088629 6114789 26160 0.4
.rodata 292840 293640 800 0.3
.text 5406517 5431301 24784 0.5
Increases (2 builds for linux)
platform target config section 77258f7 b8a6bef change % change
linux all-clusters-app debug (read only) 1775081 1800209 25128 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 138965 139957 992 0.7
.text 1497746 1519698 21952 1.5
chip-tool debug (read only) 6088629 6114789 26160 0.4
(read/write) 198808 199128 320 0.2
.data.rel.ro 152000 152320 320 0.2
.rodata 292840 293640 800 0.3
.text 5406517 5431301 24784 0.5
Full report (29 builds for efr32, k32w, linux, nrfconnect, qpg, telink)
platform target config section 77258f7 b8a6bef change % change
efr32 lighting-app BRD4161A (read only) 762200 762200 0 0.0
(read/write) 119836 119836 0 0.0
.bss 118012 118012 0 0.0
.data 1820 1820 0 0.0
.text 762192 762192 0 0.0
BRD4161A+rpc (read only) 790632 790632 0 0.0
(read/write) 138132 138132 0 0.0
.bss 136212 136212 0 0.0
.data 1920 1920 0 0.0
.text 790624 790624 0 0.0
lock-app BRD4161A (read only) 736144 736144 0 0.0
(read/write) 117540 117540 0 0.0
.bss 115764 115764 0 0.0
.data 1776 1776 0 0.0
.text 736136 736136 0 0.0
window-app BRD4161A (read only) 739208 739208 0 0.0
(read/write) 117972 117972 0 0.0
.bss 116188 116188 0 0.0
.data 1784 1784 0 0.0
.text 739200 739200 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 723320 723320 0 0.0
.bss 78292 78292 0 0.0
.data 1956 1956 0 0.0
.text 637272 637272 0 0.0
lock-app k32w061+debug (read/write) 612392 612392 0 0.0
.bss 68740 68740 0 0.0
.data 1920 1920 0 0.0
.text 535932 535932 0 0.0
shell k32w061+debug (read/write) 677712 677712 0 0.0
.bss 79892 79892 0 0.0
.data 1892 1892 0 0.0
.text 590128 590128 0 0.0
linux all-clusters-app debug (read only) 1775081 1800209 25128 1.4
(read/write) 131544 135760 4216 3.2
.bss 60144 63376 3232 5.4
.data 1170 1266 96 8.2
.data.rel.ro 64928 65776 848 1.3
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 600 24 4.2
.rodata 138965 139957 992 0.7
.text 1497746 1519698 21952 1.5
bridge-app debug+rpc (read only) 1349405 1349405 0 0.0
(read/write) 77856 77856 0 0.0
.bss 41744 41744 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 113596 113596 0 0.0
.text 1135717 1135717 0 0.0
chip-tool debug (read only) 6088629 6114789 26160 0.4
(read/write) 198808 199128 320 0.2
.bss 40096 40096 0 0.0
.data 1136 1136 0 0.0
.data.rel.ro 152000 152320 320 0.2
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 496 496 0 0.0
.rodata 292840 293640 800 0.3
.text 5406517 5431301 24784 0.5
lighting-app debug+rpc (read only) 1629065 1629065 0 0.0
(read/write) 111104 111104 0 0.0
.bss 47440 47440 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131889 131889 0 0.0
.text 1359458 1359458 0 0.0
ota-provider-app debug (read only) 1310401 1310401 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114896 114896 0 0.0
.text 1095154 1095154 0 0.0
ota-requestor-app debug (read only) 1406873 1406873 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126400 126400 0 0.0
.text 1177330 1177330 0 0.0
shell debug (read only) 820321 820321 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 79023 79023 0 0.0
.text 634610 634610 0 0.0
tv-app debug (read only) 1921377 1921377 0 0.0
(read/write) 319072 319072 0 0.0
.bss 250264 250264 0 0.0
.data 1632 1632 0 0.0
.data.rel.ro 61480 61480 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 160872 160872 0 0.0
.text 1612162 1612162 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 875611 875611 0 0.0
bss 112660 112660 0 0.0
rodata 97188 97188 0 0.0
text 590116 590116 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 838187 838187 0 0.0
bss 109012 109012 0 0.0
rodata 88436 88436 0 0.0
text 564432 564432 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 800650 800650 0 0.0
bss 114036 114036 0 0.0
rodata 92444 92444 0 0.0
text 519580 519580 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 846539 846539 0 0.0
bss 109700 109700 0 0.0
rodata 92972 92972 0 0.0
text 568388 568388 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 771810 771810 0 0.0
bss 111108 111108 0 0.0
rodata 88260 88260 0 0.0
text 497940 497940 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 852511 852511 0 0.0
bss 109836 109836 0 0.0
rodata 94680 94680 0 0.0
text 572432 572432 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 845619 845619 0 0.0
bss 109712 109712 0 0.0
rodata 92844 92844 0 0.0
text 567512 567512 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778447 778447 0 0.0
bss 109180 109180 0 0.0
rodata 73084 73084 0 0.0
text 521576 521576 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693482 693482 0 0.0
bss 110164 110164 0 0.0
rodata 67724 67724 0 0.0
text 442184 442184 0 0.0
qpg lighting-app qpg6100+debug (read only) 503096 503096 0 0.0
(read/write) 114144 114144 0 0.0
.bss 50400 50400 0 0.0
.data 1024 1024 0 0.0
.text 497776 497776 0 0.0
lock-app qpg6100+debug (read only) 475804 475804 0 0.0
(read/write) 114140 114140 0 0.0
.bss 49272 49272 0 0.0
.data 980 980 0 0.0
.text 470484 470484 0 0.0
persistent-storage-app qpg6100+debug (read only) 105424 105424 0 0.0
(read/write) 114138 114138 0 0.0
.bss 12002 12002 0 0.0
.data 276 276 0 0.0
.text 100104 100104 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 777398 777398 0 0.0
bss 79236 79236 0 0.0
noinit 37160 37160 0 0.0
text 540724 540724 0 0.0

@mlepage-google mlepage-google force-pushed the access-control-server-implementation branch from b8a6bef to a51525c Compare November 30, 2021 16:47
@github-actions
Copy link

github-actions bot commented Nov 30, 2021

PR #12305: Size comparison from f7f1cc3 to a51525c

Increases above 0.2%:

platform target config section f7f1cc3 a51525c change % change
linux all-clusters-app debug (read only) 1779889 1803729 23840 1.3
(read/write) 131960 136176 4216 3.2
.bss 60688 63920 3232 5.3
.data 1040 1136 96 9.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 139957 140309 352 0.3
.text 1500914 1522866 21952 1.5
chip-tool debug (read only) 6136757 6160805 24048 0.4
.text 5452261 5475029 22768 0.4
Increases (2 builds for linux)
platform target config section f7f1cc3 a51525c change % change
linux all-clusters-app debug (read only) 1779889 1803729 23840 1.3
(read/write) 131960 136176 4216 3.2
.bss 60688 63920 3232 5.3
.data 1040 1136 96 9.2
.data.rel.ro 64928 65776 848 1.3
.init_array 576 600 24 4.2
.rodata 139957 140309 352 0.3
.text 1500914 1522866 21952 1.5
chip-tool debug (read only) 6136757 6160805 24048 0.4
(read/write) 199576 199896 320 0.2
.data.rel.ro 152336 152640 304 0.2
.rodata 294344 295048 704 0.2
.text 5452261 5475029 22768 0.4
Decreases (13 builds for efr32, k32w, linux, nrfconnect, qpg, telink)
platform target config section f7f1cc3 a51525c change % change
efr32 lighting-app BRD4161A (read only) 763016 761240 -1776 -0.2
.text 763008 761232 -1776 -0.2
BRD4161A+rpc (read only) 791512 789736 -1776 -0.2
.text 791504 789728 -1776 -0.2
window-app BRD4161A (read only) 739984 739944 -40 -0.0
.text 739976 739936 -40 -0.0
k32w lighting-app k32w061+se05x+release (read/write) 724356 722820 -1536 -0.2
.bss 78756 78748 -8 -0.0
.text 637956 636428 -1528 -0.2
linux bridge-app debug+rpc (read only) 1353061 1353005 -56 -0.0
.rodata 113820 113788 -32 -0.0
lighting-app debug+rpc (read only) 1633129 1626329 -6800 -0.4
.rodata 132305 132209 -96 -0.1
.text 1363010 1356402 -6608 -0.5
tv-app debug (read only) 1927729 1927673 -56 -0.0
.rodata 161448 161416 -32 -0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 876639 875095 -1544 -0.2
bss 113124 113120 -4 -0.0
rodata 97344 97080 -264 -0.3
text 590620 589368 -1252 -0.2
nrf52840dk_nrf52840+rpc (read/write) 839087 837543 -1544 -0.2
bss 109476 109472 -4 -0.0
rodata 88608 88344 -264 -0.3
text 564788 563536 -1252 -0.2
nrf5340dk_nrf5340_cpuapp (read/write) 801674 800110 -1564 -0.2
bss 114500 114496 -4 -0.0
rodata 92604 92336 -268 -0.3
text 520076 518820 -1256 -0.2
pump-app nrf52840dk_nrf52840 (read/write) 853479 853455 -24 -0.0
rodata 94816 94792 -24 -0.0
qpg lighting-app qpg6100+debug (read only) 496712 495196 -1516 -0.3
.text 491392 489876 -1516 -0.3
telink lighting-app tlsr9518adk80d (read/write) 778454 776678 -1776 -0.2
bss 79700 79692 -8 -0.0
text 541270 539782 -1488 -0.3
Full report (29 builds for efr32, k32w, linux, nrfconnect, qpg, telink)
platform target config section f7f1cc3 a51525c change % change
efr32 lighting-app BRD4161A (read only) 763016 761240 -1776 -0.2
(read/write) 120300 120300 0 0.0
.bss 118476 118476 0 0.0
.data 1820 1820 0 0.0
.text 763008 761232 -1776 -0.2
BRD4161A+rpc (read only) 791512 789736 -1776 -0.2
(read/write) 138596 138596 0 0.0
.bss 136676 136676 0 0.0
.data 1920 1920 0 0.0
.text 791504 789728 -1776 -0.2
lock-app BRD4161A (read only) 736896 736896 0 0.0
(read/write) 118004 118004 0 0.0
.bss 116228 116228 0 0.0
.data 1776 1776 0 0.0
.text 736888 736888 0 0.0
window-app BRD4161A (read only) 739984 739944 -40 -0.0
(read/write) 118436 118436 0 0.0
.bss 116652 116652 0 0.0
.data 1784 1784 0 0.0
.text 739976 739936 -40 -0.0
k32w lighting-app k32w061+se05x+release (read/write) 724356 722820 -1536 -0.2
.bss 78756 78748 -8 -0.0
.data 1844 1844 0 0.0
.text 637956 636428 -1528 -0.2
lock-app k32w061+debug (read/write) 613348 613348 0 0.0
.bss 69204 69204 0 0.0
.data 1808 1808 0 0.0
.text 536536 536536 0 0.0
shell k32w061+debug (read/write) 679128 679128 0 0.0
.bss 80780 80780 0 0.0
.data 1780 1780 0 0.0
.text 590768 590768 0 0.0
linux all-clusters-app debug (read only) 1779889 1803729 23840 1.3
(read/write) 131960 136176 4216 3.2
.bss 60688 63920 3232 5.3
.data 1040 1136 96 9.2
.data.rel.ro 64928 65776 848 1.3
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 600 24 4.2
.rodata 139957 140309 352 0.3
.text 1500914 1522866 21952 1.5
bridge-app debug+rpc (read only) 1353061 1353005 -56 -0.0
(read/write) 78400 78400 0 0.0
.bss 42288 42288 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 113820 113788 -32 -0.0
.text 1139125 1139125 0 0.0
chip-tool debug (read only) 6136757 6160805 24048 0.4
(read/write) 199576 199896 320 0.2
.bss 40640 40640 0 0.0
.data 1008 1008 0 0.0
.data.rel.ro 152336 152640 304 0.2
.dynamic 592 592 0 0.0
.got 4472 4472 0 0.0
.init 27 27 0 0.0
.init_array 496 496 0 0.0
.rodata 294344 295048 704 0.2
.text 5452261 5475029 22768 0.4
lighting-app debug+rpc (read only) 1633129 1626329 -6800 -0.4
(read/write) 111520 111520 0 0.0
.bss 47984 47984 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 132305 132209 -96 -0.1
.text 1363010 1356402 -6608 -0.5
ota-provider-app debug (read only) 1313409 1313409 0 0.0
(read/write) 76856 76856 0 0.0
.bss 44864 44864 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114960 114960 0 0.0
.text 1098098 1098098 0 0.0
ota-requestor-app debug (read only) 1413425 1413425 0 0.0
(read/write) 80752 80752 0 0.0
.bss 46976 46976 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27640 27640 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126816 126816 0 0.0
.text 1182818 1182818 0 0.0
shell debug (read only) 821761 821761 0 0.0
(read/write) 67288 67288 0 0.0
.bss 23976 23976 0 0.0
.data 224 224 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 79218 79218 0 0.0
.text 635858 635858 0 0.0
tv-app debug (read only) 1927729 1927673 -56 -0.0
(read/write) 321152 321152 0 0.0
.bss 252376 252376 0 0.0
.data 1504 1504 0 0.0
.data.rel.ro 61608 61608 0 0.0
.dynamic 592 592 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 161448 161416 -32 -0.0
.text 1617842 1617842 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 876639 875095 -1544 -0.2
bss 113124 113120 -4 -0.0
rodata 97344 97080 -264 -0.3
text 590620 589368 -1252 -0.2
nrf52840dk_nrf52840+rpc (read/write) 839087 837543 -1544 -0.2
bss 109476 109472 -4 -0.0
rodata 88608 88344 -264 -0.3
text 564788 563536 -1252 -0.2
nrf5340dk_nrf5340_cpuapp (read/write) 801674 800110 -1564 -0.2
bss 114500 114496 -4 -0.0
rodata 92604 92336 -268 -0.3
text 520076 518820 -1256 -0.2
lock-app nrf52840dk_nrf52840 (read/write) 847467 847467 0 0.0
bss 110164 110164 0 0.0
rodata 93084 93084 0 0.0
text 568872 568872 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 772738 772738 0 0.0
bss 111572 111572 0 0.0
rodata 88372 88372 0 0.0
text 498420 498420 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 853479 853455 -24 -0.0
bss 110300 110300 0 0.0
rodata 94816 94792 -24 -0.0
text 572940 572940 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 846559 846559 0 0.0
bss 110176 110176 0 0.0
rodata 92952 92952 0 0.0
text 568000 568000 0 0.0
shell nrf52840dk_nrf52840 (read/write) 779043 779043 0 0.0
bss 109604 109604 0 0.0
rodata 73192 73192 0 0.0
text 521724 521724 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 694058 694058 0 0.0
bss 110588 110588 0 0.0
rodata 67836 67836 0 0.0
text 442332 442332 0 0.0
qpg lighting-app qpg6100+debug (read only) 496712 495196 -1516 -0.3
(read/write) 114144 114144 0 0.0
.bss 79640 79640 0 0.0
.data 944 944 0 0.0
.text 491392 489876 -1516 -0.3
lock-app qpg6100+debug (read only) 469316 469316 0 0.0
(read/write) 114144 114144 0 0.0
.bss 78552 78552 0 0.0
.data 896 896 0 0.0
.text 463996 463996 0 0.0
persistent-storage-app qpg6100+debug (read only) 108076 108076 0 0.0
(read/write) 114144 114144 0 0.0
.bss 36864 36864 0 0.0
.data 296 296 0 0.0
.text 102756 102756 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 778454 776678 -1776 -0.2
bss 79700 79692 -8 -0.0
noinit 37160 37160 0 0.0
text 541270 539782 -1488 -0.3

Descriptor cluster test expects certain clusters in certain order.
(This is fragile and we should find a way to improve it, but just
fix up the expected order for now.)
@mlepage-google
Copy link
Contributor Author

All checks passing. This PR will allow read and write of ACL list as a whole.

@andy31415
Copy link
Contributor

fast track: pr open for a long time, created by domain owner

@woody-apple
Copy link
Contributor

@mlepage-google Can you please re-gen/fix conflicts?

@mlepage-google
Copy link
Contributor Author

@woody-apple yep I was going to merge/regen/restyle/etc. after review/approval. I'll do it shortly when I get a moment between other PRs.

@github-actions
Copy link

github-actions bot commented Dec 6, 2021

PR #12305: Size comparison from a1cb341 to 31853e4

Decreases (6 builds for efr32, k32w, qpg, telink)
platform target config section a1cb341 31853e4 change % change
efr32 lighting-app BRD4161A (read only) 797548 797540 -8 -0.0
.text 797540 797532 -8 -0.0
BRD4161A+rpc (read only) 825516 825508 -8 -0.0
.text 825508 825500 -8 -0.0
window-app BRD4161A (read only) 774504 774496 -8 -0.0
.text 774496 774488 -8 -0.0
k32w lock-app k32w061+debug (read/write) 622292 622276 -16 -0.0
.text 544592 544576 -16 -0.0
qpg lighting-app qpg6100+debug (read only) 513276 513260 -16 -0.0
.text 507956 507940 -16 -0.0
telink lighting-app tlsr9518adk80d (read/write) 798390 798382 -8 -0.0
text 557996 557990 -6 -0.0
Full report (11 builds for efr32, k32w, qpg, telink)
platform target config section a1cb341 31853e4 change % change
efr32 lighting-app BRD4161A (read only) 797548 797540 -8 -0.0
(read/write) 120740 120740 0 0.0
.bss 118912 118912 0 0.0
.data 1828 1828 0 0.0
.text 797540 797532 -8 -0.0
BRD4161A+rpc (read only) 825516 825508 -8 -0.0
(read/write) 139048 139048 0 0.0
.bss 137112 137112 0 0.0
.data 1936 1936 0 0.0
.text 825508 825500 -8 -0.0
lock-app BRD4161A (read only) 772216 772216 0 0.0
(read/write) 118680 118680 0 0.0
.bss 116888 116888 0 0.0
.data 1788 1788 0 0.0
.text 772208 772208 0 0.0
window-app BRD4161A (read only) 774504 774496 -8 -0.0
(read/write) 118880 118880 0 0.0
.bss 117088 117088 0 0.0
.data 1792 1792 0 0.0
.text 774496 774488 -8 -0.0
k32w lighting-app k32w061+se05x+release (read/write) 731576 731576 0 0.0
.bss 79408 79408 0 0.0
.data 1860 1860 0 0.0
.text 644508 644508 0 0.0
lock-app k32w061+debug (read/write) 622292 622276 -16 -0.0
.bss 70072 70072 0 0.0
.data 1828 1828 0 0.0
.text 544592 544576 -16 -0.0
shell k32w061+debug (read/write) 688184 688184 0 0.0
.bss 81720 81720 0 0.0
.data 1800 1800 0 0.0
.text 598864 598864 0 0.0
qpg lighting-app qpg6100+debug (read only) 513276 513260 -16 -0.0
(read/write) 122332 122332 0 0.0
.bss 80360 80360 0 0.0
.data 964 964 0 0.0
.text 507956 507940 -16 -0.0
lock-app qpg6100+debug (read only) 487580 487580 0 0.0
(read/write) 122336 122336 0 0.0
.bss 79496 79496 0 0.0
.data 920 920 0 0.0
.text 482260 482260 0 0.0
persistent-storage-app qpg6100+debug (read only) 108224 108224 0 0.0
(read/write) 122332 122332 0 0.0
.bss 36696 36696 0 0.0
.data 292 292 0 0.0
.text 102904 102904 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 798390 798382 -8 -0.0
bss 80428 80428 0 0.0
noinit 37160 37160 0 0.0
text 557996 557990 -6 -0.0

It was TagBoundEncoder, but now it's ListEncodeHelper.

Also had to fix the perfect forwarding in AttributeValueEncoder and
ListEncodeHelper and other template functions in the file, so it
doesn't try to copy its args.
@github-actions
Copy link

github-actions bot commented Dec 6, 2021

PR #12305: Size comparison from a1cb341 to 12b0651

Increases above 0.2%:

platform target config section a1cb341 12b0651 change % change
esp32 all-clusters-app c3devkit (read only) 852296 856220 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852296 856220 3924 0.5
m5stack (read only) 956539 960499 3960 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.flash.rodata 208132 208636 504 0.2
.flash.text 951155 955115 3960 0.4
mbed all-clusters-app CY8CPROTO_062_4343W+release .bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.text 1274768 1278848 4080 0.3
p6 all-clusters-app default .bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.text 1304864 1310552 5688 0.4
Increases (11 builds for esp32, k32w, mbed, nrfconnect, p6)
platform target config section a1cb341 12b0651 change % change
esp32 all-clusters-app c3devkit (read only) 852296 856220 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852296 856220 3924 0.5
m5stack (read only) 956539 960499 3960 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.dram0.data 34016 34056 40 0.1
.flash.rodata 208132 208636 504 0.2
.flash.text 951155 955115 3960 0.4
k32w lock-app k32w061+debug (read/write) 622292 622388 96 0.0
.text 544592 544688 96 0.0
shell k32w061+debug (read/write) 688184 688296 112 0.0
.text 598864 598976 112 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2312192 2316272 4080 0.2
.bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.text 1274768 1278848 4080 0.3
lighting-app CY8CPROTO_062_4343W+release .heap 857552 857560 8 0.0
nrfconnect lock-app nrf52840dk_nrf52840 (read/write) 867203 867363 160 0.0
text 584904 585068 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 793338 793498 160 0.0
text 515324 515488 164 0.0
pump-app nrf52840dk_nrf52840 (read/write) 871939 872099 160 0.0
text 588304 588468 164 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 865147 865323 176 0.0
text 583512 583680 168 0.0
p6 all-clusters-app default (read/write) 2346600 2352288 5688 0.2
.bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.text 1304864 1310552 5688 0.4
Decreases (14 builds for efr32, k32w, mbed, nrfconnect, p6, telink)
platform target config section a1cb341 12b0651 change % change
efr32 lighting-app BRD4161A (read only) 797548 794284 -3264 -0.4
.text 797540 794276 -3264 -0.4
BRD4161A+rpc (read only) 825516 822268 -3248 -0.4
.text 825508 822260 -3248 -0.4
lock-app BRD4161A (read only) 772216 771288 -928 -0.1
.text 772208 771280 -928 -0.1
window-app BRD4161A (read only) 774504 773560 -944 -0.1
.text 774496 773552 -944 -0.1
k32w lighting-app k32w061+se05x+release (read/write) 731576 729880 -1696 -0.2
.bss 79408 79400 -8 -0.0
.text 644508 642820 -1688 -0.3
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 849840 846608 -3232 -0.4
lighting-app CY8CPROTO_062_4343W+release (read/write) 2300032 2298112 -1920 -0.1
.bss 173400 173392 -8 -0.0
.text 1262632 1260712 -1920 -0.2
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 894603 893011 -1592 -0.2
bss 113852 113848 -4 -0.0
rodata 99676 99460 -216 -0.2
text 605532 604144 -1388 -0.2
nrf52840dk_nrf52840+rpc (read/write) 857979 856371 -1608 -0.2
bss 110200 110196 -4 -0.0
rodata 91036 90820 -216 -0.2
text 580528 579140 -1388 -0.2
nrf5340dk_nrf5340_cpuapp (read/write) 820502 818906 -1596 -0.2
bss 115224 115220 -4 -0.0
rodata 94936 94716 -220 -0.2
text 535856 534472 -1384 -0.3
p6 all-clusters-app default .heap 923184 919952 -3232 -0.4
light-app default (read/write) 2283848 2281016 -2832 -0.1
.text 1242112 1239280 -2832 -0.2
lock-app default (read/write) 2259984 2259488 -496 -0.0
.text 1218248 1217752 -496 -0.0
telink lighting-app tlsr9518adk80d (read/write) 798390 796118 -2272 -0.3
text 557996 555950 -2046 -0.4
Full report (28 builds for efr32, esp32, k32w, mbed, nrfconnect, p6, telink)
platform target config section a1cb341 12b0651 change % change
efr32 lighting-app BRD4161A (read only) 797548 794284 -3264 -0.4
(read/write) 120740 120740 0 0.0
.bss 118912 118912 0 0.0
.data 1828 1828 0 0.0
.text 797540 794276 -3264 -0.4
BRD4161A+rpc (read only) 825516 822268 -3248 -0.4
(read/write) 139048 139048 0 0.0
.bss 137112 137112 0 0.0
.data 1936 1936 0 0.0
.text 825508 822260 -3248 -0.4
lock-app BRD4161A (read only) 772216 771288 -928 -0.1
(read/write) 118680 118680 0 0.0
.bss 116888 116888 0 0.0
.data 1788 1788 0 0.0
.text 772208 771280 -928 -0.1
window-app BRD4161A (read only) 774504 773560 -944 -0.1
(read/write) 118880 118880 0 0.0
.bss 117088 117088 0 0.0
.data 1792 1792 0 0.0
.text 774496 773552 -944 -0.1
esp32 all-clusters-app c3devkit (read only) 852296 856220 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852296 856220 3924 0.5
.iram0.text 62076 62076 0 0.0
m5stack (read only) 956539 960499 3960 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.dram0.data 34016 34056 40 0.1
.flash.rodata 208132 208636 504 0.2
.flash.text 951155 955115 3960 0.4
.iram0.text 123451 123451 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 731576 729880 -1696 -0.2
.bss 79408 79400 -8 -0.0
.data 1860 1860 0 0.0
.text 644508 642820 -1688 -0.3
lock-app k32w061+debug (read/write) 622292 622388 96 0.0
.bss 70072 70072 0 0.0
.data 1828 1828 0 0.0
.text 544592 544688 96 0.0
shell k32w061+debug (read/write) 688184 688296 112 0.0
.bss 81720 81720 0 0.0
.data 1800 1800 0 0.0
.text 598864 598976 112 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2312192 2316272 4080 0.2
.bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.heap 849840 846608 -3232 -0.4
.text 1274768 1278848 4080 0.3
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2300032 2298112 -1920 -0.1
.bss 173400 173392 -8 -0.0
.data 5496 5496 0 0.0
.heap 857552 857560 8 0.0
.text 1262632 1260712 -1920 -0.2
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2273072 2273072 0 0.0
.bss 172440 172440 0 0.0
.data 5496 5496 0 0.0
.heap 858512 858512 0 0.0
.text 1235672 1235672 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1140008 1140008 0 0.0
.bss 11756 11756 0 0.0
.data 4376 4376 0 0.0
.heap 1020312 1020312 0 0.0
.text 103392 103392 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2047472 2047472 0 0.0
.bss 156732 156732 0 0.0
.data 4872 4872 0 0.0
.heap 874840 874840 0 0.0
.text 1010072 1010072 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 894603 893011 -1592 -0.2
bss 113852 113848 -4 -0.0
rodata 99676 99460 -216 -0.2
text 605532 604144 -1388 -0.2
nrf52840dk_nrf52840+rpc (read/write) 857979 856371 -1608 -0.2
bss 110200 110196 -4 -0.0
rodata 91036 90820 -216 -0.2
text 580528 579140 -1388 -0.2
nrf5340dk_nrf5340_cpuapp (read/write) 820502 818906 -1596 -0.2
bss 115224 115220 -4 -0.0
rodata 94936 94716 -220 -0.2
text 535856 534472 -1384 -0.3
lock-app nrf52840dk_nrf52840 (read/write) 867203 867363 160 0.0
bss 111112 111112 0 0.0
rodata 95796 95796 0 0.0
text 584904 585068 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 793338 793498 160 0.0
bss 112524 112524 0 0.0
rodata 91084 91084 0 0.0
text 515324 515488 164 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497463 497463 0 0.0
bss 51820 51820 0 0.0
rodata 45852 45852 0 0.0
text 339492 339492 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 871939 872099 160 0.0
bss 111024 111024 0 0.0
rodata 97148 97148 0 0.0
text 588304 588468 164 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 865147 865323 176 0.0
bss 110904 110904 0 0.0
rodata 95284 95284 0 0.0
text 583512 583680 168 0.0
shell nrf52840dk_nrf52840 (read/write) 779939 779939 0 0.0
bss 109696 109696 0 0.0
rodata 73792 73792 0 0.0
text 521948 521948 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 694966 694966 0 0.0
bss 110680 110680 0 0.0
rodata 68432 68432 0 0.0
text 442548 442548 0 0.0
p6 all-clusters-app default (read/write) 2346600 2352288 5688 0.2
.bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.heap 923184 919952 -3232 -0.4
.text 1304864 1310552 5688 0.4
light-app default (read/write) 2283848 2281016 -2832 -0.1
.bss 98632 98632 0 0.0
.data 2336 2336 0 0.0
.heap 932376 932376 0 0.0
.text 1242112 1239280 -2832 -0.2
lock-app default (read/write) 2259984 2259488 -496 -0.0
.bss 97512 97512 0 0.0
.data 2296 2296 0 0.0
.heap 933536 933536 0 0.0
.text 1218248 1217752 -496 -0.0
telink lighting-app tlsr9518adk80d (read/write) 798390 796118 -2272 -0.3
bss 80428 80428 0 0.0
noinit 37160 37160 0 0.0
text 557996 555950 -2046 -0.4

These static constexpr member variables were declared but not defined.

In C++14 and lower, the definitions are required. Otherwise, undefined
reference ensues. C++17 handles this but Matter is still using C++14.

Not sure why this was working before...
@github-actions
Copy link

github-actions bot commented Dec 7, 2021

PR #12305: Size comparison from a1cb341 to e19c1ad

Increases (3 builds for k32w, qpg)
platform target config section a1cb341 e19c1ad change % change
k32w lock-app k32w061+debug (read/write) 622292 622308 16 0.0
.text 544592 544608 16 0.0
shell k32w061+debug (read/write) 688184 688216 32 0.0
.text 598864 598896 32 0.0
qpg lock-app qpg6100+debug (read only) 487580 487604 24 0.0
.text 482260 482284 24 0.0
Decreases (3 builds for k32w, qpg, telink)
platform target config section a1cb341 e19c1ad change % change
k32w lighting-app k32w061+se05x+release (read/write) 731576 729816 -1760 -0.2
.bss 79408 79400 -8 -0.0
.text 644508 642756 -1752 -0.3
qpg lighting-app qpg6100+debug (read only) 513276 511528 -1748 -0.3
.text 507956 506208 -1748 -0.3
telink lighting-app tlsr9518adk80d (read/write) 798390 796038 -2352 -0.3
text 557996 555870 -2126 -0.4
Full report (7 builds for k32w, qpg, telink)
platform target config section a1cb341 e19c1ad change % change
k32w lock-app k32w061+debug (read/write) 622292 622308 16 0.0
.bss 70072 70072 0 0.0
.data 1828 1828 0 0.0
.text 544592 544608 16 0.0
shell k32w061+debug (read/write) 688184 688216 32 0.0
.bss 81720 81720 0 0.0
.data 1800 1800 0 0.0
.text 598864 598896 32 0.0
lighting-app k32w061+se05x+release (read/write) 731576 729816 -1760 -0.2
.bss 79408 79400 -8 -0.0
.data 1860 1860 0 0.0
.text 644508 642756 -1752 -0.3
qpg lighting-app qpg6100+debug (read only) 513276 511528 -1748 -0.3
(read/write) 122332 122332 0 0.0
.bss 80360 80360 0 0.0
.data 964 964 0 0.0
.text 507956 506208 -1748 -0.3
lock-app qpg6100+debug (read only) 487580 487604 24 0.0
(read/write) 122336 122336 0 0.0
.bss 79496 79496 0 0.0
.data 920 920 0 0.0
.text 482260 482284 24 0.0
persistent-storage-app qpg6100+debug (read only) 108224 108224 0 0.0
(read/write) 122332 122332 0 0.0
.bss 36696 36696 0 0.0
.data 292 292 0 0.0
.text 102904 102904 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 798390 796038 -2352 -0.3
bss 80428 80428 0 0.0
noinit 37160 37160 0 0.0
text 557996 555870 -2126 -0.4

@github-actions
Copy link

github-actions bot commented Dec 7, 2021

PR #12305: Size comparison from 5c70530 to b7e997e

Increases above 0.2%:

platform target config section 5c70530 b7e997e change % change
esp32 all-clusters-app c3devkit (read only) 852210 856134 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852210 856134 3924 0.5
m5stack (read only) 956475 960427 3952 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.flash.rodata 208132 208636 504 0.2
.flash.text 951091 955043 3952 0.4
linux all-clusters-app debug (read only) 1871081 1902129 31048 1.7
(read/write) 124592 128712 4120 3.3
.bss 50832 54064 3232 6.4
.data 1120 1216 96 8.6
.data.rel.ro 67216 67968 752 1.1
.init_array 696 720 24 3.4
.rodata 153717 154933 1216 0.8
.text 1574066 1601666 27600 1.8
mbed all-clusters-app CY8CPROTO_062_4343W+release .bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.text 1274704 1278848 4144 0.3
p6 all-clusters-app default .bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.text 1304800 1310472 5672 0.4
Increases (22 builds for esp32, k32w, linux, mbed, nrfconnect, p6, qpg)
platform target config section 5c70530 b7e997e change % change
esp32 all-clusters-app c3devkit (read only) 852210 856134 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852210 856134 3924 0.5
m5stack (read only) 956475 960427 3952 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.dram0.data 34016 34056 40 0.1
.flash.rodata 208132 208636 504 0.2
.flash.text 951091 955043 3952 0.4
k32w lighting-app k32w061+se05x+release (read/write) 731512 731592 80 0.0
.text 644444 644524 80 0.0
lock-app k32w061+debug (read/write) 622212 622308 96 0.0
.text 544512 544608 96 0.0
shell k32w061+debug (read/write) 688120 688216 96 0.0
.text 598800 598896 96 0.0
linux all-clusters-app debug (read only) 1871081 1902129 31048 1.7
(read/write) 124592 128712 4120 3.3
.bss 50832 54064 3232 6.4
.data 1120 1216 96 8.6
.data.rel.ro 67216 67968 752 1.1
.init_array 696 720 24 3.4
.rodata 153717 154933 1216 0.8
.text 1574066 1601666 27600 1.8
bridge-app debug+rpc (read only) 1450101 1450789 688 0.0
.text 1222341 1223029 688 0.1
lighting-app debug+rpc (read only) 1735881 1736569 688 0.0
.text 1449762 1450450 688 0.0
ota-provider-app debug (read only) 1407641 1408089 448 0.0
.text 1178706 1179154 448 0.0
ota-requestor-app debug (read only) 1516993 1517409 416 0.0
.text 1271362 1271778 416 0.0
tv-app debug (read only) 2051945 2054553 2608 0.1
.text 1721602 1724210 2608 0.2
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2312128 2316272 4144 0.2
.bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.text 1274704 1278848 4144 0.3
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 894539 894699 160 0.0
text 605460 605624 164 0.0
nrf52840dk_nrf52840+rpc (read/write) 857915 858075 160 0.0
text 580456 580620 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 820438 820598 160 0.0
text 535784 535952 168 0.0
lock-app nrf52840dk_nrf52840 (read/write) 867123 867283 160 0.0
text 584832 584996 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 793258 793434 176 0.0
text 515252 515416 164 0.0
pump-app nrf52840dk_nrf52840 (read/write) 871859 872019 160 0.0
text 588232 588396 164 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 865083 865243 160 0.0
text 583440 583608 168 0.0
p6 all-clusters-app default (read/write) 2346536 2352208 5672 0.2
.bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.text 1304800 1310472 5672 0.4
qpg lighting-app qpg6100+debug (read only) 513204 513300 96 0.0
.text 507884 507980 96 0.0
lock-app qpg6100+debug (read only) 487508 487604 96 0.0
.text 482188 482284 96 0.0
Decreases (10 builds for efr32, mbed, p6, telink)
platform target config section 5c70530 b7e997e change % change
efr32 lighting-app BRD4161A (read only) 797468 796540 -928 -0.1
.text 797460 796532 -928 -0.1
BRD4161A+rpc (read only) 825436 824508 -928 -0.1
.text 825428 824500 -928 -0.1
lock-app BRD4161A (read only) 772152 771224 -928 -0.1
.text 772144 771216 -928 -0.1
window-app BRD4161A (read only) 774424 773496 -928 -0.1
.text 774416 773488 -928 -0.1
mbed all-clusters-app CY8CPROTO_062_4343W+release .heap 849840 846608 -3232 -0.4
lighting-app CY8CPROTO_062_4343W+release (read/write) 2300032 2299968 -64 -0.0
.text 1262632 1262568 -64 -0.0
p6 all-clusters-app default .heap 923184 919952 -3232 -0.4
light-app default (read/write) 2283768 2283256 -512 -0.0
.text 1242032 1241520 -512 -0.0
lock-app default (read/write) 2259920 2259424 -496 -0.0
.text 1218184 1217688 -496 -0.0
telink lighting-app tlsr9518adk80d (read/write) 798310 798086 -224 -0.0
text 557916 557696 -220 -0.0
Full report (39 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5c70530 b7e997e change % change
efr32 lighting-app BRD4161A (read only) 797468 796540 -928 -0.1
(read/write) 120740 120740 0 0.0
.bss 118912 118912 0 0.0
.data 1828 1828 0 0.0
.text 797460 796532 -928 -0.1
BRD4161A+rpc (read only) 825436 824508 -928 -0.1
(read/write) 139048 139048 0 0.0
.bss 137112 137112 0 0.0
.data 1936 1936 0 0.0
.text 825428 824500 -928 -0.1
lock-app BRD4161A (read only) 772152 771224 -928 -0.1
(read/write) 118680 118680 0 0.0
.bss 116888 116888 0 0.0
.data 1788 1788 0 0.0
.text 772144 771216 -928 -0.1
window-app BRD4161A (read only) 774424 773496 -928 -0.1
(read/write) 118880 118880 0 0.0
.bss 117088 117088 0 0.0
.data 1792 1792 0 0.0
.text 774416 773488 -928 -0.1
esp32 all-clusters-app c3devkit (read only) 852210 856134 3924 0.5
(read/write) 1295154 1298882 3728 0.3
.dram0.bss 58232 61424 3192 5.5
.dram0.data 14084 14132 48 0.3
.flash.rodata 169792 170288 496 0.3
.flash.text 852210 856134 3924 0.5
.iram0.text 62076 62076 0 0.0
m5stack (read only) 956475 960427 3952 0.4
(read/write) 439528 443256 3728 0.8
.dram0.bss 65592 68776 3184 4.9
.dram0.data 34016 34056 40 0.1
.flash.rodata 208132 208636 504 0.2
.flash.text 951091 955043 3952 0.4
.iram0.text 123451 123451 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 731512 731592 80 0.0
.bss 79408 79408 0 0.0
.data 1860 1860 0 0.0
.text 644444 644524 80 0.0
lock-app k32w061+debug (read/write) 622212 622308 96 0.0
.bss 70072 70072 0 0.0
.data 1828 1828 0 0.0
.text 544512 544608 96 0.0
shell k32w061+debug (read/write) 688120 688216 96 0.0
.bss 81720 81720 0 0.0
.data 1800 1800 0 0.0
.text 598800 598896 96 0.0
linux all-clusters-app debug (read only) 1871081 1902129 31048 1.7
(read/write) 124592 128712 4120 3.3
.bss 50832 54064 3232 6.4
.data 1120 1216 96 8.6
.data.rel.ro 67216 67968 752 1.1
.dynamic 592 592 0 0.0
.got 4120 4120 0 0.0
.init 27 27 0 0.0
.init_array 696 720 24 3.4
.rodata 153717 154933 1216 0.8
.text 1574066 1601666 27600 1.8
bridge-app debug+rpc (read only) 1450101 1450789 688 0.0
(read/write) 74904 74904 0 0.0
.bss 36464 36464 0 0.0
.data 1728 1728 0 0.0
.data.rel.ro 31632 31632 0 0.0
.dynamic 592 592 0 0.0
.got 3992 3992 0 0.0
.init 27 27 0 0.0
.init_array 480 480 0 0.0
.rodata 122692 122692 0 0.0
.text 1222341 1223029 688 0.1
chip-tool debug (read only) 6651717 6651717 0 0.0
(read/write) 200040 200040 0 0.0
.bss 34728 34728 0 0.0
.data 1024 1024 0 0.0
.data.rel.ro 158600 158600 0 0.0
.dynamic 592 592 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 568 568 0 0.0
.rodata 313777 313777 0 0.0
.text 5933045 5933045 0 0.0
lighting-app debug+rpc (read only) 1735881 1736569 688 0.0
(read/write) 107968 107968 0 0.0
.bss 42160 42160 0 0.0
.data 1280 1280 0 0.0
.data.rel.ro 59136 59136 0 0.0
.dynamic 608 608 0 0.0
.got 4144 4144 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 143281 143281 0 0.0
.text 1449762 1450450 688 0.0
ota-provider-app debug (read only) 1407641 1408089 448 0.0
(read/write) 73104 73104 0 0.0
.bss 39040 39040 0 0.0
.data 928 928 0 0.0
.data.rel.ro 27944 27944 0 0.0
.dynamic 592 592 0 0.0
.got 4056 4056 0 0.0
.init 27 27 0 0.0
.init_array 520 520 0 0.0
.rodata 124078 124078 0 0.0
.text 1178706 1179154 448 0.0
ota-requestor-app debug (read only) 1516993 1517409 416 0.0
(read/write) 78152 78152 0 0.0
.bss 42208 42208 0 0.0
.data 992 992 0 0.0
.data.rel.ro 29720 29720 0 0.0
.dynamic 592 592 0 0.0
.got 4064 4064 0 0.0
.init 27 27 0 0.0
.init_array 544 544 0 0.0
.rodata 136823 136823 0 0.0
.text 1271362 1271778 416 0.0
shell debug (read only) 823577 823577 0 0.0
(read/write) 60616 60616 0 0.0
.bss 16936 16936 0 0.0
.data 256 256 0 0.0
.data.rel.ro 38936 38936 0 0.0
.dynamic 592 592 0 0.0
.got 3520 3520 0 0.0
.init 27 27 0 0.0
.init_array 344 344 0 0.0
.rodata 84754 84754 0 0.0
.text 631986 631986 0 0.0
tv-app debug (read only) 2051945 2054553 2608 0.1
(read/write) 320320 320320 0 0.0
.bss 247480 247480 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 64240 64240 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 736 736 0 0.0
.rodata 175436 175436 0 0.0
.text 1721602 1724210 2608 0.2
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2312128 2316272 4144 0.2
.bss 181412 184596 3184 1.8
.data 5192 5240 48 0.9
.heap 849840 846608 -3232 -0.4
.text 1274704 1278848 4144 0.3
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2300032 2299968 -64 -0.0
.bss 173400 173400 0 0.0
.data 5496 5496 0 0.0
.heap 857552 857552 0 0.0
.text 1262632 1262568 -64 -0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2273072 2273072 0 0.0
.bss 172440 172440 0 0.0
.data 5496 5496 0 0.0
.heap 858512 858512 0 0.0
.text 1235672 1235672 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1140008 1140008 0 0.0
.bss 11756 11756 0 0.0
.data 4376 4376 0 0.0
.heap 1020312 1020312 0 0.0
.text 103392 103392 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2047472 2047472 0 0.0
.bss 156732 156732 0 0.0
.data 4872 4872 0 0.0
.heap 874840 874840 0 0.0
.text 1010072 1010072 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 894539 894699 160 0.0
bss 113852 113852 0 0.0
rodata 99676 99676 0 0.0
text 605460 605624 164 0.0
nrf52840dk_nrf52840+rpc (read/write) 857915 858075 160 0.0
bss 110200 110200 0 0.0
rodata 91036 91036 0 0.0
text 580456 580620 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 820438 820598 160 0.0
bss 115224 115224 0 0.0
rodata 94936 94936 0 0.0
text 535784 535952 168 0.0
lock-app nrf52840dk_nrf52840 (read/write) 867123 867283 160 0.0
bss 111112 111112 0 0.0
rodata 95796 95796 0 0.0
text 584832 584996 164 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 793258 793434 176 0.0
bss 112524 112524 0 0.0
rodata 91084 91084 0 0.0
text 515252 515416 164 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497463 497463 0 0.0
bss 51820 51820 0 0.0
rodata 45852 45852 0 0.0
text 339492 339492 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 871859 872019 160 0.0
bss 111024 111024 0 0.0
rodata 97148 97148 0 0.0
text 588232 588396 164 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 865083 865243 160 0.0
bss 110904 110904 0 0.0
rodata 95284 95284 0 0.0
text 583440 583608 168 0.0
shell nrf52840dk_nrf52840 (read/write) 779939 779939 0 0.0
bss 109696 109696 0 0.0
rodata 73792 73792 0 0.0
text 521948 521948 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 694966 694966 0 0.0
bss 110680 110680 0 0.0
rodata 68432 68432 0 0.0
text 442548 442548 0 0.0
p6 all-clusters-app default (read/write) 2346536 2352208 5672 0.2
.bss 107692 110868 3176 2.9
.data 2464 2520 56 2.3
.heap 923184 919952 -3232 -0.4
.text 1304800 1310472 5672 0.4
light-app default (read/write) 2283768 2283256 -512 -0.0
.bss 98632 98632 0 0.0
.data 2336 2336 0 0.0
.heap 932376 932376 0 0.0
.text 1242032 1241520 -512 -0.0
lock-app default (read/write) 2259920 2259424 -496 -0.0
.bss 97512 97512 0 0.0
.data 2296 2296 0 0.0
.heap 933536 933536 0 0.0
.text 1218184 1217688 -496 -0.0
qpg lighting-app qpg6100+debug (read only) 513204 513300 96 0.0
(read/write) 122332 122332 0 0.0
.bss 80360 80360 0 0.0
.data 964 964 0 0.0
.text 507884 507980 96 0.0
lock-app qpg6100+debug (read only) 487508 487604 96 0.0
(read/write) 122336 122336 0 0.0
.bss 79496 79496 0 0.0
.data 920 920 0 0.0
.text 482188 482284 96 0.0
persistent-storage-app qpg6100+debug (read only) 108224 108224 0 0.0
(read/write) 122332 122332 0 0.0
.bss 36696 36696 0 0.0
.data 292 292 0 0.0
.text 102904 102904 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 798310 798086 -224 -0.0
bss 80428 80428 0 0.0
noinit 37160 37160 0 0.0
text 557916 557696 -220 -0.0

@mlepage-google mlepage-google merged commit 7871953 into project-chip:master Dec 7, 2021
@mlepage-google mlepage-google deleted the access-control-server-implementation branch December 7, 2021 04:01
Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So is the 3KB RAM increase about what we expected for the access control bits as they are right now?

@@ -979,12 +979,12 @@
"mfgCode": null,
"side": "server",
"included": 1,
"storageOption": "External",
"storageOption": "RAM",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? This is going to take up space in the attr store that is completely unused...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the easiest way to get the tests running for now, because the attribute exists. Otherwise I have to go through and ensure all the "not yet implemented" parts have "some kind of implementation" sufficient to keep the tests happy. I made the length 4 just in case any test tried to write more than one, but I could change the length to 1 for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see PR #12690


struct AccessControlEntryCodec
{
static CHIP_ERROR Convert(AuthMode from, AccessControlCluster::AuthMode & to)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This to me suggests that Access::AuthMode should be a type alias for AccessControlCluster::AuthMode, so all we need to do here is check that we're in range....

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would make the code a tiny bit smaller (how much? a few small switch statements would go away). But eventually (when we get beyond features and into optimization) I want to bit encode the auth mode and privilege together. That will optimize for the common runtime check case, whereas managing ACL entries occurs much less often.

return CHIP_NO_ERROR;
}

static CHIP_ERROR Convert(Privilege from, AccessControlCluster::Privilege & to)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise, it feels like the code here could be much smaller/simpler if our types were aligned better.

CHIP_ERROR err = aEncoder.EncodeList([&](const auto & encoder) -> CHIP_ERROR {
while (iterator.Next(codec.entry) == CHIP_NO_ERROR)
{
encoder.Encode(codec);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we ignoring failures here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I'll add checks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see PR #12690


CHIP_ERROR AccessControlAttribute::ReadExtension(AttributeValueEncoder & aEncoder)
{
return CHIP_NO_ERROR;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about we explicitly encode an empty list and not bloat our RAM use?

Copy link
Contributor Author

@mlepage-google mlepage-google Dec 7, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can spin a PR for that, or change the XML length to 1 and reduce the octstr size, until we have a real implementation. Of the two temporary situations, which is preferable?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see PR #12690


CHIP_ERROR AccessControlAttribute::WriteExtension(AttributeValueDecoder & aDecoder)
{
return CHIP_NO_ERROR;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a TODO, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have issues, extensions are #10252. I find if I add TODOs everywhere in the skeleton code, TODObot gets very talkative. The issue should be sufficient? (It's returning no error, because I'd prefer "not implemented", but tests that try to read/write every attribute complain.)

Comment on lines +425 to +427
AccessControlAttribute gAttribute;

AccessControl gAccessControl(Examples::GetAccessControlDelegate());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both of these should be static or inside an anonymous namespace. Preferably the latter, along with the various struct definitions above.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree I'll do that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see PR #12690

@bzbarsky-apple
Copy link
Contributor

@mlepage-google See above?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants